// 交叉类型 &
// 功能理解：产生的新类型 既要符合A类型又要复合B类型，
// attention: 不能简单的理解为：两个集合的交集

// 交叉类型实现继承
type A = {
  name: string;
  sex: string;
  age: number;
};
type B = {
  grade: string;
};
type Union = A & B; // 类似于A 继承了B中grade 属性

const a: Union = {
  name: "zhangsan",
  sex: "male",
  age: 18,
  grade: "1",
}; //

type Param = string | number | void;
type Param2 = Param & number; // number 和 string | number | void 的交集： number
